<?php
	/**
	 * Klass REGISTER VIEW - skriver/visar ut allt som användaren ska se.
	 */ 
	class RegisterView {

		private $usernameKey = "username";
		private $mailKey = "mail";
		private $passwordKey = "password";
		private $repeatPasswordKey = "repeatPassword";
		private $registerKey = "register";
		private $deleteKey = "delete";
		private $deleteUserIDKey = "DeleteUserID";

		const EMPTY_MESSAGE = 0;
		const USERNAME_TAKEN = 1;
		const WRONG_USERNAME = 2;
		const WRONG_MAIL = 3;
		const WRONG_PASSWORD = 4;
		const WRONG_REPEAT_PASSWORD = 5;
		const SHORT_USERNAME = 6;
		const SHORT_PASSWORD = 7;		
		const REGISTRATION_IS_SUCCESSFUL = 8;
		

		//----- FUNKTION: MESSAGE HOLDER ----------------------------------------------------------------------------------------------------	
		/**
		* Funktion för att hantera meddelanderna. 
		* @param array $errorMessages Innehåller information om vilka meddelanden som ska skrivas ut.
		* @return string $errorMessage Meddelandet/na.
		*/
		public function MessageHolder($errorMessages) {
			$errorMessage = "";

			for ($errorMessagePosition=0; $errorMessagePosition < count($errorMessages); $errorMessagePosition++) { 
				switch ($errorMessages[$errorMessagePosition]) {
					case self::EMPTY_MESSAGE:
						$errorMessage .= "";					
						break;
						
					case self::USERNAME_TAKEN:
						$errorMessage .= "<p class='errorMessage'>Användarnamnet är upptaget.</p>";					
						break;
					
					case self::WRONG_USERNAME:
						$errorMessage .= "<p class='errorMessage'>Fel användarnamn.</p>";					
						break;
						
					case self::WRONG_MAIL:
						$errorMessage .= "<p class='errorMessage'>Fel e-mail.</p>";					
						break;
						
					case self::WRONG_PASSWORD:
						$errorMessage .= "<p class='errorMessage'>Fel lösenord.</p>";					
						break;

					case self::WRONG_REPEAT_PASSWORD:
						$errorMessage .= "<p class='errorMessage'>Lösenorden stämmer inte överens.</p>";					
						break;	

					case self::SHORT_USERNAME:
						$errorMessage .= "<p class='errorMessage'>För kort användarnamn.</p>";					
						break;

					case self::SHORT_PASSWORD:
						$errorMessage .= "<p class='errorMessage'>För kort lösenord.</p>";					
						break;

					case self::REGISTRATION_IS_SUCCESSFUL:
						$errorMessage .= "<p class='errorMessage'>Registreringen lyckades!</p>";					
						break;
					
					default:					
						break;
				}
			}return $errorMessage;			
		}


		//----- FUNKTION: CREATE REGISTER FORM ----------------------------------------------------------------------------------------------	
		/**
		* Funktion för att skapa registrerings formuläret. 
		* @param string $messagesHTML Innehåller meddelandena.
		* @return string Formuläret som skrivs ut i HTML-kod.
		*/
		public function CreateRegisterForm($messagesHTML) {
			 			 		 
			 return "			 
			 $messagesHTML
			 	<div id='registerContainerBox'>	 				
	 				
	 				<form id='registerForm'>			 			
	 						<legend>Registrera</legend>
				 			
				 			<div id='registerInput'>
				 				
				 				<div id='user'>
					 				<lable for='$this->usernameKey'>Anv&auml;ndarnamn: </lable>
						 			<input name='$this->usernameKey' type='text' id='$this->usernameKey' class='orig'>
					 			</div>

					 			<div id='pass'>
					 				<lable for='$this->mailKey'>E-post: </lable>					 			
					 				<input name='$this->mailKey' type='text' id='$this->mailKey' class='orig'>				 			
				 				</div>

					 			<div id='Rpass'>
					 				<lable for='$this->passwordKey'>L&ouml;senord: </lable>					 			
					 				<input name='$this->passwordKey' type='password' id='$this->passwordKey' class='orig'>				 			
				 				</div>

				 				<div id='Rpass'>
					 				<lable for='$this->repeatPasswordKey'>Upprepa l&ouml;senord: </lable>					 			
					 				<input name='$this->repeatPasswordKey' type='Password' id='$this->repeatPasswordKey' class='orig'>				 			
				 				</div>
		 				
					 			<input id='$this->registerKey' name='$this->registerKey' type='submit' value='Registrera' class='enabled'>

				 			</div>			 		
	 				</form>
	 			</div>
			 ";
		}


		//----- FUNKTION: LIST ALL USERES ---------------------------------------------------------------------------------------------------
		/**
		* Funktion för att lista alla registrerade användare. 
		* @param array $users En array med users-objekt. (Så vi kan loopa igenom arrayen för att skriva ut en användare i sänder.)
		* @return string $returnstring En lista med alla användare i HTML-kod.
		*/
		public function ListAllUsers($users)
		{
			$returnstring = "
				<div id='ListAllUsersContainerBox'>
					<h2>Alla användare</h2>";

			for ($usersPosition=0; $usersPosition < count($users); $usersPosition++) { 
				$userID = $users[$usersPosition]->userID;
				$username = $users[$usersPosition]->userName;
				$mail = $users[$usersPosition]->userMail;

				 $returnstring .= "
	                <form class='center_row' method='get' action='index.php'>
                        <span class='short'>$userID</span>
                        <input id='$this->deleteUserIDKey' name='$this->deleteUserIDKey' type='hidden' value='$userID' />
                        <span class='long'>$username</span>
                        <span class='long'>$mail</span>
                        
                        <input type='submit' name='$this->deleteKey' value='Ta Bort' class='delete_button' />                        
	                </form>";
			}
			$returnstring .= "</div>";
			return $returnstring;
		}


		//----- FUNKTION: TRIED TO REGISTER -------------------------------------------------------------------------------------------------
		/**
		* Funktion för att kontrollera om en användare har försökt att registrera sig.
		* @return bool
		*/
		public function TriedToRegister()
		{
			if(isset($_GET[$this->registerKey])){
				return true;
			} else{
				return false;
			}
		}


		//----- FUNKTION: TRIED TO DELETE ---------------------------------------------------------------------------------------------------
		/**
		* Funktion för att kontrollera om en användare har försökt att ta bort en användare.
		* @return bool
		*/
		public function TriedToDelete()
		{
			if(isset($_GET[$this->deleteKey])){
				return true;
			} else{
				return false;
			}
		}


		//----- FUNKTION: GET DELETE-ID -----------------------------------------------------------------------------------------------------
		/**
		* Funktion för att hämta ut ID:et som tillhör den användare som den aktuella användaren försöker ta bort.
		* @return string/bool Retunerar det ID:et som ska tas bort om något ID är satt. Annars retuneras false.
		*/
		public function GetDeleteID()
		{
			if(isset($_GET[$this->deleteUserIDKey])){
				return $_GET[$this->deleteUserIDKey];
			} else{
				return false;
			}
		}


		//----- FUNKTION: GET USERNAME ------------------------------------------------------------------------------------------------------
		/**
		* Funktion för att hämta ut det användarnamn som användaren som försöker registrera sig har angett.
		* @return string/bool Retunerar det användarnamn som ska registreras om något användarnamn är satt. Annars retuneras false.
		*/
		public function GetUserName()
		{
			if(isset($_GET[$this->usernameKey])){
				return $_GET[$this->usernameKey];
			} else{
				return false;
			}
		}


		//----- FUNKTION: GET MAIL ----------------------------------------------------------------------------------------------------------
		/**
		* Funktion för att hämta ut den mail som användaren som försöker registrera sig har angett.
		* @return string/bool Retunerar den mail som ska registreras om någon mail är satt. Annars retuneras false.
		*/
		public function GetMail()
		{
			if(isset($_GET[$this->mailKey])){
				return $_GET[$this->mailKey];
			} else{
				return false;
			}
		}


		//----- FUNKTION: GET PASSWORD ------------------------------------------------------------------------------------------------------
		/**
		* Funktion för att hämta ut det lösenord som användaren som försöker registrera sig har angett. 
		* @return string/bool Retunerar det lösenord som ska registreras om något lösenord är satt. Annars retuneras false.
		*/
		public function GetPassword()
		{
			if(isset($_GET[$this->passwordKey])){
				return $_GET[$this->passwordKey];
			} else{
				return false;
			}
		}


		//----- FUNKTION: GET REPEAT PASSWORD -----------------------------------------------------------------------------------------------
		/**
		* Funktion för att hämta ut det upprepa lösenordet som användaren som försöker registrera sig har angett.
		* @return string/bool Retunerar det upprepade lösenordet som ska registreras om något upprepat lösenord är satt. Annars retuneras false.
		*/
		public function GetRepeatPassword()
		{
			if(isset($_GET[$this->repeatPasswordKey])){
				return $_GET[$this->repeatPasswordKey];
			} else{
				return false;
			}
		}					
	}
?>